package cn.yunyichina.provider.iface.service;

import java.util.Map;

import cn.yunyichina.provider.iface.entity.common.Response;
import cn.yunyichina.provider.iface.entity.common.ResponseObject;

/**
 * 云医通服务子系统对外接口
 * 
 * @author zhangkw
 * @date 2016-07-28
 */
public interface IService {

    /**
     * 通过外部系统调用
     * 
     * @param data
     * @return
     */
    Response callFromExternal(Map<String, String> data);

    /**
     * 通过内部系统调用,返回下划线参数,一般对外接口
     * 
     * @param sessionId
     *            用户的sessionId
     * @param method
     *            方法名
     * @param data
     *            数据
     * @param base64flag
     *            是否试用base64编码 0-不使用 1-试用
     * @return
     */
    Response callUnderlineFromInternal(String sessionId, String method, String data, short base64Flag);

    ResponseObject callUnderlineFromInternalObject(String sessionId, String method, String data, short base64Flag);

    /**
     * 通过内部系统调用,返回驼峰规则的参数,一般对内调用
     * 
     * @param sessionId
     * @param method
     * @param data
     * @param base64flag
     * @return
     */
    Response callHumpFromInternal(String sessionId, String method, String data, short base64Flag);

    /**
     * 获取系统异常错误码
     * 
     * @return
     */
    String getErrorCode();
}
